/*
 * Utilidades_gtest.h
 *
 *  Created on: 02/11/2012
 *      Author: diego
 */

#ifndef UTILIDADES_GTEST_H_
#define UTILIDADES_GTEST_H_

#include <vector>
#include "../physical_layer/compresorGammaElias/ColeccionDeBits.h"
#include "../physical_layer/compresorGammaElias/Utilidades.h"

class UtilidadesTestFixture: public testing::Test {
public:
        //UtilidadesTestFixture();

    void SetUp()
    {
    }

    void TearDown()
    {
    }

        //virtual ~UtilidadesTestFixture();
};


TEST_F( UtilidadesTestFixture, PruebaConvertirABinario)
{
		Utilidades utilidades=Utilidades();
		ColeccionDeBits* representacionBinaria=utilidades.obtenerRepresentacionBinariaDe(23);

		ASSERT_EQ(representacionBinaria->obtenerElementoEnPosicion(0),1);
		ASSERT_EQ(representacionBinaria->obtenerElementoEnPosicion(1),0);
		ASSERT_EQ(representacionBinaria->obtenerElementoEnPosicion(2),1);
		ASSERT_EQ(representacionBinaria->obtenerElementoEnPosicion(3),1);
		ASSERT_EQ(representacionBinaria->obtenerElementoEnPosicion(4),1);

		ColeccionDeBits* representacionBinaria1=utilidades.obtenerRepresentacionBinariaDe(13);

		ASSERT_EQ(representacionBinaria1->obtenerElementoEnPosicion(0),1);
		ASSERT_EQ(representacionBinaria1->obtenerElementoEnPosicion(1),1);
		ASSERT_EQ(representacionBinaria1->obtenerElementoEnPosicion(2),0);
		ASSERT_EQ(representacionBinaria1->obtenerElementoEnPosicion(3),1);


}

TEST_F( UtilidadesTestFixture, PruebaConvertirADecimal)
{
	Utilidades utilidades=Utilidades();
	ColeccionDeBits* representacionBinaria=new ColeccionDeBits();

	representacionBinaria->agregarUnUnoAlFinal();
	representacionBinaria->agregarUnCeroAlFinal();
	representacionBinaria->agregarUnUnoAlFinal();
	representacionBinaria->agregarUnUnoAlFinal();
	representacionBinaria->agregarUnUnoAlFinal();
	
	int representacionDecimal=utilidades.obtenerRepresentacionDecimalDe(representacionBinaria);

	ASSERT_EQ(representacionDecimal,23);

	ColeccionDeBits* representacionBinaria1=new ColeccionDeBits();

	representacionBinaria1->agregarUnUnoAlFinal();
	representacionBinaria1->agregarUnUnoAlFinal();
	representacionBinaria1->agregarUnCeroAlFinal();
	representacionBinaria1->agregarUnUnoAlFinal();

	int representacionDecimal1=utilidades.obtenerRepresentacionDecimalDe(representacionBinaria1);

	ASSERT_EQ(representacionDecimal1,13);

}


#endif /* UTILIDADES_GTEST_H_ */
